圖 1|Day 2 影片封面,點擊圖片可觀看完整影片。
本文是 2026 iThome 鐵人賽系列「不只會寫 Code:用 ChatGPT × Codex 打造企業級 AI 開發工作流」第 2 天。Day 1 建立了 Context → Plan → Execute → Verify → Review → Deliver 的閉環;今天先處理最容易讓後續全部失真的入口:需求。

圖 2|從模糊需求、ChatGPT 拆解、團隊確認到 Codex 落地的需求收斂閘門。
上圖把本日工作流分成四站:模糊需求、ChatGPT 拆解、團隊確認與 Codex 落地。真正的閘門是:尚未確認的 OPEN 項目不能直接進入實作。
在企業專案裡,最昂貴的錯誤通常不是語法錯,而是團隊對同一句話有不同解讀。例如「讓管理員可以匯出訂單」至少還缺少:
如果直接把原句交給程式代理人,Codex 可能會產生「看起來能跑」的實作,但驗收標準仍然不存在。企業工程需要先把自然語言轉成可追蹤、可測試、可拒絕的規格。
我會把 ChatGPT 放在「規格分析師與審查者」的位置,而不是直接寫檔案。輸入的 Context 至少包含:
接著要求它輸出四份東西:
| 產出 | 要回答的問題 | 用途 |
|---|---|---|
| 假設清單 | 哪些資訊仍缺失? | 避免模型偷偷自行決定 |
| 驗收條件 | 正常、邊界與拒絕情境是什麼? | 轉成 Given / When / Then 與測試 |
| 方案比較 | 同步串流、非同步工作或預先產檔? | 呈現成本、效能與維運取捨 |
| 風險與追問 | 安全、相容性與觀測點是否完整? | 把未決問題標記為 OPEN |
這一步的重點不是讓模型「猜得更像」,而是把不確定性顯性化。對尚未決定的假設,標記為 OPEN;只有產品與技術負責人確認後,才升格為規格。
以訂單匯出為例,規格可以收斂成:

圖 3|整理規格從角色、輸入到治理證據的五個層次。
規格不只描述成功結果,也要逐層補齊角色、輸入邊界、狀態、失敗重送,以及最後可供審查的證據。
目標:管理員可依目前篩選條件建立訂單 CSV 匯出工作。
驗收:
- Given 使用者不是租戶管理員,When POST /exports,Then 回傳 403 且不建立工作。
- Given 日期區間超過 31 天,When 建立工作,Then 回傳 422 並指出欄位。
- Given 合法請求,When 建立工作,Then 回傳 202、job_id,且工作只讀取該租戶資料。
- Given 相同 request id 重送,When 尚未完成,Then 回傳同一 job_id,不重複排程。
- Given 工作完成,When 下載檔案,Then 連結限時、只能由原租戶使用,並留下稽核事件。
非目標:本次不提供自訂欄位、不改變既有訂單查詢 API。

圖 4|訂單 CSV 匯出的非同步工作架構,以及權限、冪等、儲存與稽核流程。
這個參考架構把驗收條件落到實際元件:API 閘門負責權限與輸入驗證,Export API 以 request id 保證冪等,工作佇列與 Worker 處理大量資料,物件儲存提供短效下載連結;建立工作與下載行為則統一寫入稽核日誌。
本文不只提供規格與架構圖,我也準備了可直接執行的 Python 範例程式:查看 Day 2 訂單 CSV 匯出範例。
範例包含 ExportService、工作佇列、匯出 Worker、租戶隔離、request id 冪等控制、短效下載網址與稽核事件,並附上 6 項驗收測試。下載 Repository 後可直接執行:
cd day02/example-api
python3 -m unittest -v
目前 6 項測試均已實際執行通過,讀者可以一邊對照下方 Given / When / Then,一邊查看程式如何落實每項驗收條件。
注意 request id、租戶條件與限時下載不是 UI 細節,而是可驗收的治理控制。它們會直接影響 repository 的介面、資料模型、測試與監控。
模糊需求是:「登入錯太多次就鎖住帳號。」可驗收版本至少要補齊:
模糊需求是:「員工可以上傳收據。」可驗收版本要說清楚格式、大小與權限:
模糊需求是:「每天寄信提醒尚未付款的客戶。」可驗收版本必須處理排程、重送與時區:
這三個例子分別代表安全、檔案與排程情境。共同原則都是把「誰、何時、什麼條件、預期結果、拒絕路徑」寫進規格。
把已確認規格交給 Codex 時,不要只說「請實作」。指令應包含:
Codex 的價值在於把規格變成 repository 裡可執行的變更;它不應替團隊決定尚未確認的產品政策。遇到 OPEN 項目時,正確行為是停下來回報,而不是自行補完。
完成後分三層驗證:
| 驗證層次 | 檢查內容 | 交付證據 |
|---|---|---|
| 行為驗證 | 單元測試、API 整合測試、權限與租戶隔離 | 測試結果與覆蓋的驗收條件 |
| 證據驗證 | 逐條對照 Given / When / Then | 可重現的測試或命令輸出 |
| 工程審查 | Migration、併發冪等、個資、下載權杖與失敗重試 | Review 紀錄、風險與未決問題 |
最後回到 Deliver:把規格、決策紀錄、測試證據與未決問題一起交付。這樣下一個人接手時,不必從聊天紀錄猜測「當初到底想做什麼」。
本文的 Markdown 來源與架構圖原始檔已公開保存於 GitHub,方便閱讀、下載與後續延伸:
| 資源 | 連結 |
|---|---|
| 系列專案 | ithome-ironman-2026-chatgpt-codex |
| Day 2 文章來源 | day02/article.md |
| 可執行範例與驗收測試 | day02/example-api |
| Mermaid 風格架構圖原始檔 | day02/diagrams |
Day 2 的核心不是更會下 prompt,而是建立一個拒絕模糊需求的閘門:ChatGPT 負責拆解與比較,團隊確認政策;Codex 負責在明確邊界內實作、測試並回報證據。明天再把這份規格推進到 repository 的 Plan,處理多代理協作時如何避免上下文漂移。